{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>331</td>\n",
       "      <td>654</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2011-01-02</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>131</td>\n",
       "      <td>670</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2011-01-03</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>120</td>\n",
       "      <td>1229</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2011-01-04</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>108</td>\n",
       "      <td>1454</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2011-01-05</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>82</td>\n",
       "      <td>1518</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant      dteday  season  yr  mnth  holiday  weekday  workingday  \\\n",
       "0        1  2011-01-01       1   0     1        0        6           0   \n",
       "1        2  2011-01-02       1   0     1        0        0           0   \n",
       "2        3  2011-01-03       1   0     1        0        1           1   \n",
       "3        4  2011-01-04       1   0     1        0        2           1   \n",
       "4        5  2011-01-05       1   0     1        0        3           1   \n",
       "\n",
       "   weathersit      temp     atemp       hum  windspeed  casual  registered  \\\n",
       "0           2  0.344167  0.363625  0.805833   0.160446     331         654   \n",
       "1           2  0.363478  0.353739  0.696087   0.248539     131         670   \n",
       "2           1  0.196364  0.189405  0.437273   0.248309     120        1229   \n",
       "3           1  0.200000  0.212122  0.590435   0.160296     108        1454   \n",
       "4           1  0.226957  0.229270  0.436957   0.186900      82        1518   \n",
       "\n",
       "    cnt  \n",
       "0   985  \n",
       "1   801  \n",
       "2  1349  \n",
       "3  1562  \n",
       "4  1600  "
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "from sklearn.metrics import r2_score\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "data = pd.read_csv(\"day.csv\", skipinitialspace=True)\n",
    "data.head()\n",
    "#从下表看出 cnt 似乎是一直在增长的\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n从下表可以看出来，weathersit的mean为1.39.。50%处为1，说明 1晴天出现次数很多\\ntemp 和 atemp 基本一致\\nhum，windspeed应该是比较符合正态分布的\\n'"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()\n",
    "'''\n",
    "从下表可以看出来，weathersit的mean为1.39.。50%处为1，说明 1晴天出现次数很多\n",
    "temp 和 atemp 基本一致\n",
    "hum，windspeed应该是比较符合正态分布的\n",
    "'''\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd0a03239e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(data.atemp.values, bins=30, kde=False)\n",
    "plt.xlabel('data.atemp.values', fontsize=12)\n",
    "plt.show()\n",
    "#根据图，可以看到，体感温度的分布 还是比较符合 正态分布的，，从数值来看，应该已经经过了变换"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd0a02c2cc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(data.hum.values, bins=30, kde=False)\n",
    "plt.xlabel('data.hum.values', fontsize=12)\n",
    "plt.show()\n",
    "#从下图看， hum也比较符合正态分布，但是0.0那里似乎有利群点， 可以去掉\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.00000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "      <td>729.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>366.840878</td>\n",
       "      <td>2.500686</td>\n",
       "      <td>0.502058</td>\n",
       "      <td>6.530864</td>\n",
       "      <td>0.028807</td>\n",
       "      <td>2.99177</td>\n",
       "      <td>0.684499</td>\n",
       "      <td>1.393690</td>\n",
       "      <td>0.495663</td>\n",
       "      <td>0.474589</td>\n",
       "      <td>0.629359</td>\n",
       "      <td>0.189953</td>\n",
       "      <td>849.710562</td>\n",
       "      <td>3663.898491</td>\n",
       "      <td>4513.609053</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>210.842272</td>\n",
       "      <td>1.109555</td>\n",
       "      <td>0.500339</td>\n",
       "      <td>3.450107</td>\n",
       "      <td>0.167377</td>\n",
       "      <td>2.00410</td>\n",
       "      <td>0.465034</td>\n",
       "      <td>0.542191</td>\n",
       "      <td>0.183225</td>\n",
       "      <td>0.163123</td>\n",
       "      <td>0.139758</td>\n",
       "      <td>0.076662</td>\n",
       "      <td>686.820245</td>\n",
       "      <td>1555.329576</td>\n",
       "      <td>1931.582099</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.059130</td>\n",
       "      <td>0.079070</td>\n",
       "      <td>0.254167</td>\n",
       "      <td>0.022392</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>22.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>185.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.336667</td>\n",
       "      <td>0.337746</td>\n",
       "      <td>0.522083</td>\n",
       "      <td>0.134950</td>\n",
       "      <td>316.000000</td>\n",
       "      <td>2506.000000</td>\n",
       "      <td>3190.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>367.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.00000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>0.487996</td>\n",
       "      <td>0.627500</td>\n",
       "      <td>0.180967</td>\n",
       "      <td>721.000000</td>\n",
       "      <td>3667.000000</td>\n",
       "      <td>4549.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>549.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.00000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.655833</td>\n",
       "      <td>0.609229</td>\n",
       "      <td>0.730417</td>\n",
       "      <td>0.233204</td>\n",
       "      <td>1097.000000</td>\n",
       "      <td>4790.000000</td>\n",
       "      <td>5976.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>731.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.00000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.861667</td>\n",
       "      <td>0.840896</td>\n",
       "      <td>0.972500</td>\n",
       "      <td>0.441563</td>\n",
       "      <td>3410.000000</td>\n",
       "      <td>6946.000000</td>\n",
       "      <td>8714.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          instant      season          yr        mnth     holiday    weekday  \\\n",
       "count  729.000000  729.000000  729.000000  729.000000  729.000000  729.00000   \n",
       "mean   366.840878    2.500686    0.502058    6.530864    0.028807    2.99177   \n",
       "std    210.842272    1.109555    0.500339    3.450107    0.167377    2.00410   \n",
       "min      1.000000    1.000000    0.000000    1.000000    0.000000    0.00000   \n",
       "25%    185.000000    2.000000    0.000000    4.000000    0.000000    1.00000   \n",
       "50%    367.000000    3.000000    1.000000    7.000000    0.000000    3.00000   \n",
       "75%    549.000000    3.000000    1.000000   10.000000    0.000000    5.00000   \n",
       "max    731.000000    4.000000    1.000000   12.000000    1.000000    6.00000   \n",
       "\n",
       "       workingday  weathersit        temp       atemp         hum   windspeed  \\\n",
       "count  729.000000  729.000000  729.000000  729.000000  729.000000  729.000000   \n",
       "mean     0.684499    1.393690    0.495663    0.474589    0.629359    0.189953   \n",
       "std      0.465034    0.542191    0.183225    0.163123    0.139758    0.076662   \n",
       "min      0.000000    1.000000    0.059130    0.079070    0.254167    0.022392   \n",
       "25%      0.000000    1.000000    0.336667    0.337746    0.522083    0.134950   \n",
       "50%      1.000000    1.000000    0.500000    0.487996    0.627500    0.180967   \n",
       "75%      1.000000    2.000000    0.655833    0.609229    0.730417    0.233204   \n",
       "max      1.000000    3.000000    0.861667    0.840896    0.972500    0.441563   \n",
       "\n",
       "            casual   registered          cnt  \n",
       "count   729.000000   729.000000   729.000000  \n",
       "mean    849.710562  3663.898491  4513.609053  \n",
       "std     686.820245  1555.329576  1931.582099  \n",
       "min       2.000000    20.000000    22.000000  \n",
       "25%     316.000000  2506.000000  3190.000000  \n",
       "50%     721.000000  3667.000000  4549.000000  \n",
       "75%    1097.000000  4790.000000  5976.000000  \n",
       "max    3410.000000  6946.000000  8714.000000  "
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#去掉hum的离群点\n",
    "data = data[data['hum'] > 0.2]\n",
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5,1,'Changes in  atemp vs.  cnt')"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd071ff39b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#初步猜测 cnt 和 atemp 相关性 很大\n",
    "plt.scatter(data['atemp'],data['cnt'])\n",
    "plt.title('Changes in  %s vs.  %s' % ('atemp','cnt'))\n",
    "#根据下图 可以看到， atemp 和 cnt 是有一定线性关系的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5,1,'Changes in  mnth vs.  cnt')"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd06a5c4860>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#初步猜测 mnth 和 cnt 相关性 也很大\n",
    "plt.scatter(data[data['yr'] == 0]['mnth'],data[data['yr'] == 0]['cnt'])\n",
    "plt.title('Changes in  %s vs.  %s' % ('mnth','cnt'))\n",
    "#根据下图 可以看到， atemp 和 cnt 是有一定关系的, cnt 是 mnth的 二次多项式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>cnt</th>\n",
       "      <th>mnth2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>726</th>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.226642</td>\n",
       "      <td>0.652917</td>\n",
       "      <td>0.350133</td>\n",
       "      <td>2114</td>\n",
       "      <td>144</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>727</th>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.255046</td>\n",
       "      <td>0.590000</td>\n",
       "      <td>0.155471</td>\n",
       "      <td>3095</td>\n",
       "      <td>144</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>728</th>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.242400</td>\n",
       "      <td>0.752917</td>\n",
       "      <td>0.124383</td>\n",
       "      <td>1341</td>\n",
       "      <td>144</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>729</th>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.231700</td>\n",
       "      <td>0.483333</td>\n",
       "      <td>0.350754</td>\n",
       "      <td>1796</td>\n",
       "      <td>144</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>730</th>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.223487</td>\n",
       "      <td>0.577500</td>\n",
       "      <td>0.154846</td>\n",
       "      <td>2729</td>\n",
       "      <td>144</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     yr  mnth  holiday  weekday  workingday  weathersit     atemp       hum  \\\n",
       "726   1    12        0        4           1           2  0.226642  0.652917   \n",
       "727   1    12        0        5           1           2  0.255046  0.590000   \n",
       "728   1    12        0        6           0           2  0.242400  0.752917   \n",
       "729   1    12        0        0           0           1  0.231700  0.483333   \n",
       "730   1    12        0        1           1           2  0.223487  0.577500   \n",
       "\n",
       "     windspeed   cnt  mnth2  \n",
       "726   0.350133  2114    144  \n",
       "727   0.155471  3095    144  \n",
       "728   0.124383  1341    144  \n",
       "729   0.350754  1796    144  \n",
       "730   0.154846  2729    144  "
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#根据 cnt是mnth的二次多项式，增加一列，表示 mnth**2\n",
    "data['mnth2'] = data['mnth'] ** 2\n",
    "data.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "#data = data.drop('instant',axis = 1)\n",
    "#根据 题目 ，先去掉几个无意义的数据:非注册用户个数，注册用户个数，日期，记录号，\n",
    "data = data.drop(columns=['casual', 'registered','dteday','instant'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd071f455c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#接下来 查看特征之间的相关性，去掉一部分冗余特征\n",
    "data_corr = data.corr().abs()\n",
    "plt.subplots(figsize=(13, 9))\n",
    "sns.heatmap(data_corr,annot=True)\n",
    "\n",
    "# Mask unimportant features\n",
    "sns.heatmap(data_corr, mask=data_corr < 1, cbar=False)\n",
    "\n",
    "plt.savefig('data.png' )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   yr  mnth  holiday  weekday  workingday  weathersit     atemp       hum  \\\n",
       "0   0     1        0        6           0           2  0.363625  0.805833   \n",
       "1   0     1        0        0           0           2  0.353739  0.696087   \n",
       "2   0     1        0        1           1           1  0.189405  0.437273   \n",
       "3   0     1        0        2           1           1  0.212122  0.590435   \n",
       "4   0     1        0        3           1           1  0.229270  0.436957   \n",
       "\n",
       "   windspeed   cnt  \n",
       "0   0.160446   985  \n",
       "1   0.248539   801  \n",
       "2   0.248309  1349  \n",
       "3   0.160296  1562  \n",
       "4   0.186900  1600  "
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#由图可以看到 temp 和 atemp 相关性非常大，可以丢掉一个,季节和月份相关性也很大，丢掉季节\n",
    "#经过尝试 发现 去掉 season后， 测试集上 r2_score 为 -0.7左右\n",
    "'''\n",
    "从和cnt的关系来看， yr ，atemp，，mnth，weathersit 影响较大, \n",
    "温度太高，太低 都会影响 cnt大小\n",
    "天晴好 ，温度适宜，骑单车的人就会比较多\n",
    "'''\n",
    "data = data.drop(['temp','season'], axis = 1)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "#下面是分割训练数据与测试数据\n",
    "#data[data['weekday'] == 0]\n",
    "#X_train = X[X['dteday'] < '2012-01-01']\n",
    "#预测目标\n",
    "y = data['cnt'].values\n",
    "X = data.drop('cnt',axis = 1)\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "#X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33, test_size=0.2)\n",
    "train = data[data['yr'] == 0]\n",
    "X_train = train.drop(columns=['yr', 'cnt'])\n",
    "y_train = train['cnt']\n",
    "columns = X_train.columns\n",
    "\n",
    "test = data[data['yr'] == 1]\n",
    "X_test = test.drop(columns=['yr', 'cnt'])\n",
    "y_test = test['cnt']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>mnth2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.373517</td>\n",
       "      <td>0.751364</td>\n",
       "      <td>0.345236</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.360541</td>\n",
       "      <td>0.587644</td>\n",
       "      <td>0.565533</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.144830</td>\n",
       "      <td>0.201542</td>\n",
       "      <td>0.564958</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.174649</td>\n",
       "      <td>0.430031</td>\n",
       "      <td>0.344861</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.197158</td>\n",
       "      <td>0.201071</td>\n",
       "      <td>0.411391</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   mnth  holiday  weekday  workingday  weathersit     atemp       hum  \\\n",
       "0     1        0        6           0           2  0.373517  0.751364   \n",
       "1     1        0        0           0           2  0.360541  0.587644   \n",
       "2     1        0        1           1           1  0.144830  0.201542   \n",
       "3     1        0        2           1           1  0.174649  0.430031   \n",
       "4     1        0        3           1           1  0.197158  0.201071   \n",
       "\n",
       "   windspeed  mnth2  \n",
       "0   0.345236      1  \n",
       "1   0.565533      1  \n",
       "2   0.564958      1  \n",
       "3   0.344861      1  \n",
       "4   0.411391      1  "
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#数据归一化,先给 X_train的数值类型数据做归一化\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "\n",
    "ms_X = MinMaxScaler()\n",
    "ms_y = MinMaxScaler()\n",
    "\n",
    "X_train2 = X_train.copy()\n",
    "X_train0 = X_train[['atemp','hum','windspeed']]\n",
    "print(type(X_train0))\n",
    "\n",
    "X_train0 = ms_X.fit_transform(X_train0)\n",
    "#X_test = ms_X.transform()\n",
    "\n",
    "#X_train.head()\n",
    "i = 0;\n",
    "for x in X_train0[:,0:1]:\n",
    "    X_train2.iat[i,5] = x\n",
    "    i+=1\n",
    "    \n",
    "i = 0;\n",
    "for x in X_train0[:,1:2]:\n",
    "    X_train2.iat[i,6] = x\n",
    "    i+=1\n",
    "    \n",
    "i = 0;\n",
    "for x in X_train0[:,2:3]:\n",
    "    X_train2.iat[i,7] = x\n",
    "    i+=1\n",
    "\n",
    "    \n",
    "X_train2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>mnth2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>365</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.389564</td>\n",
       "      <td>0.653416</td>\n",
       "      <td>0.368479</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>366</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.214212</td>\n",
       "      <td>0.189521</td>\n",
       "      <td>0.716652</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>367</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.035004</td>\n",
       "      <td>0.278882</td>\n",
       "      <td>0.807826</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>368</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.025139</td>\n",
       "      <td>0.239130</td>\n",
       "      <td>0.349571</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>369</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.251337</td>\n",
       "      <td>0.402485</td>\n",
       "      <td>0.211026</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     mnth  holiday  weekday  workingday  weathersit     atemp       hum  \\\n",
       "365     1        0        0           0           1  0.389564  0.653416   \n",
       "366     1        1        1           0           1  0.214212  0.189521   \n",
       "367     1        0        2           1           1  0.035004  0.278882   \n",
       "368     1        0        3           1           2  0.025139  0.239130   \n",
       "369     1        0        4           1           1  0.251337  0.402485   \n",
       "\n",
       "     windspeed  mnth2  \n",
       "365   0.368479      1  \n",
       "366   0.716652      1  \n",
       "367   0.807826      1  \n",
       "368   0.349571      1  \n",
       "369   0.211026      1  "
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test2 = X_test.copy()\n",
    "X_test0 = X_test[['atemp','hum','windspeed']]\n",
    "\n",
    "X_test0 = ms_X.fit_transform(X_test0)\n",
    "\n",
    "i = 0;\n",
    "for x in X_test0[:,0:1]:\n",
    "    X_test2.iat[i,5] = x\n",
    "    i+=1\n",
    "    \n",
    "i = 0;\n",
    "for x in X_test0[:,1:2]:\n",
    "    X_test2.iat[i,6] = x\n",
    "    i+=1\n",
    "    \n",
    "i = 0;\n",
    "for x in X_test0[:,2:3]:\n",
    "    X_test2.iat[i,7] = x\n",
    "    i+=1\n",
    "\n",
    "    \n",
    "X_test2.head()\n",
    "    \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0.09871703]\n",
      " [0.06593015]\n",
      " [0.16357805]\n",
      " [0.20153243]\n",
      " [0.20830364]]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/lyp/.local/lib/python3.6/site-packages/ipykernel_launcher.py:2: FutureWarning: reshape is deprecated and will raise in a subsequent release. Please use .values.reshape(...) instead\n",
      "  \n",
      "/home/lyp/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by MinMaxScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n",
      "/home/lyp/.local/lib/python3.6/site-packages/ipykernel_launcher.py:3: FutureWarning: reshape is deprecated and will raise in a subsequent release. Please use .values.reshape(...) instead\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n"
     ]
    }
   ],
   "source": [
    "#y值归一化\n",
    "y_train = ms_y.fit_transform(y_train.reshape(-1, 1))\n",
    "y_test = ms_y.transform(y_test.reshape(-1, 1))\n",
    "\n",
    "print(y_train[0:5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\nfrom sklearn.preprocessing import StandardScaler\\n\\n# 分别初始化对特征和目标值的标准化器\\nss_X = StandardScaler()\\nss_y = StandardScaler()\\n\\n\\n# 分别对训练和测试数据的特征以及目标值进行标准化处理\\nX_train = ss_X.fit_transform(X_train)\\nX_test = ss_X.transform(X_test)\\n\\n#对y标准化的好处是不同问题的w差异不太大，同时正则参数的范围也有限\\ny_train = ss_y.fit_transform(y_train.reshape(-1, 1))\\ny_test = ss_y.transform(y_test.reshape(-1, 1))'"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 数据标准化\n",
    "'''\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "# 分别初始化对特征和目标值的标准化器\n",
    "ss_X = StandardScaler()\n",
    "ss_y = StandardScaler()\n",
    "\n",
    "\n",
    "# 分别对训练和测试数据的特征以及目标值进行标准化处理\n",
    "X_train = ss_X.fit_transform(X_train)\n",
    "X_test = ss_X.transform(X_test)\n",
    "\n",
    "#对y标准化的好处是不同问题的w差异不太大，同时正则参数的范围也有限\n",
    "y_train = ss_y.fit_transform(y_train.reshape(-1, 1))\n",
    "y_test = ss_y.transform(y_test.reshape(-1, 1))'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>[0.3607792568826817]</td>\n",
       "      <td>atemp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>[0.1433939783801201]</td>\n",
       "      <td>mnth</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>[0.007117036082245347]</td>\n",
       "      <td>workingday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>[0.0022800015941121087]</td>\n",
       "      <td>weekday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>[-0.00917307374612307]</td>\n",
       "      <td>mnth2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>[-0.050600097803570804]</td>\n",
       "      <td>holiday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>[-0.07550638382877752]</td>\n",
       "      <td>weathersit</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>[-0.1244509110354415]</td>\n",
       "      <td>hum</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>[-0.17915558843833157]</td>\n",
       "      <td>windspeed</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      coef     columns\n",
       "5     [0.3607792568826817]       atemp\n",
       "0     [0.1433939783801201]        mnth\n",
       "3   [0.007117036082245347]  workingday\n",
       "2  [0.0022800015941121087]     weekday\n",
       "8   [-0.00917307374612307]       mnth2\n",
       "1  [-0.050600097803570804]     holiday\n",
       "4   [-0.07550638382877752]  weathersit\n",
       "6    [-0.1244509110354415]         hum\n",
       "7   [-0.17915558843833157]   windspeed"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 线性回归\n",
    "#class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1)\n",
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "# 使用默认配置初始化\n",
    "lr = LinearRegression()\n",
    "\n",
    "# 训练模型参数\n",
    "lr.fit(X_train2, y_train)\n",
    "\n",
    "# 预测\n",
    "y_test_pred_lr = lr.predict(X_test2)\n",
    "y_train_pred_lr = lr.predict(X_train2)\n",
    "\n",
    "\n",
    "# 看看各特征的权重系数，系数的绝对值大小可视为该特征的重要性\n",
    "fs = pd.DataFrame({\"columns\":list(columns), \"coef\":list((lr.coef_.T))})\n",
    "fs.sort_values(by=['coef'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LinearRegression on test is -0.6947838069586401\n",
      "The r2 score of LinearRegression on train is 0.7701725991230883\n"
     ]
    }
   ],
   "source": [
    "# 使用r2_score评价模型在测试集和训练集上的性能，并输出评估结果\n",
    "#测试集\n",
    "print( 'The r2 score of LinearRegression on test is', r2_score(y_test, y_test_pred_lr))\n",
    "#训练集\n",
    "print('The r2 score of LinearRegression on train is', r2_score(y_train, y_train_pred_lr))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n通过下图，可以看到，比较符合高斯分布，但是 在两端都 表现不好\\n'"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd06a3315c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#根据线性回归的原理，预测残差应该是 符合 均值为0 的高斯分布\n",
    "f, ax = plt.subplots(figsize=(7, 5)) \n",
    "f.tight_layout() \n",
    "ax.hist(y_train - y_train_pred_lr,bins=40, label='Residuals Linear', color='b', alpha=.5); \n",
    "ax.set_title(\"Histogram of Residuals\") \n",
    "ax.legend(loc='best');\n",
    "'''\n",
    "通过下图，可以看到，比较符合高斯分布，但是 在两端都 表现不好\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test is -0.6973300796568893\n",
      "The r2 score of RidgeCV on train is 0.7701579015984317\n"
     ]
    }
   ],
   "source": [
    "#接下来试试岭回归\n",
    "from sklearn.linear_model import  RidgeCV\n",
    "#设置超参数（正则参数）范围\n",
    "alphas = [0.01, 0.1, 1, 10]\n",
    "\n",
    "#生成一个RidgeCV实例\n",
    "ridge = RidgeCV(alphas=alphas, store_cv_values=True)  \n",
    "\n",
    "#模型训练\n",
    "ridge.fit(X_train2, y_train)    \n",
    "\n",
    "#预测\n",
    "y_test_pred_ridge = ridge.predict(X_test2)\n",
    "y_train_pred_ridge = ridge.predict(X_train2)\n",
    "\n",
    "\n",
    "# 评估，使用r2_score评价模型在测试集和训练集上的性能\n",
    "print( 'The r2 score of RidgeCV on test is', r2_score(y_test, y_test_pred_ridge))\n",
    "print( 'The r2 score of RidgeCV on train is', r2_score(y_train, y_train_pred_ridge))\n",
    "\n",
    "#经过 增加 mnth**2, 发现 训练集上的score更大，同时 测试集上的score更小，\n",
    "#要由于 年份对 2012年的数据 影响更大，导致 对mnth做多项式，显得鸡肋了， 但如果是同一年的数据， 应该是能提高score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd06a62ad68>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 0.1\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef_lr</th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>[0.3607792568826817]</td>\n",
       "      <td>[0.35264591319341676]</td>\n",
       "      <td>atemp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>[0.1433939783801201]</td>\n",
       "      <td>[0.14522147049904177]</td>\n",
       "      <td>mnth</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>[0.007117036082245347]</td>\n",
       "      <td>[0.007329217260655607]</td>\n",
       "      <td>workingday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>[0.0022800015941121087]</td>\n",
       "      <td>[0.002262967501316382]</td>\n",
       "      <td>weekday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>[-0.00917307374612307]</td>\n",
       "      <td>[-0.00930267277732355]</td>\n",
       "      <td>mnth2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>[-0.050600097803570804]</td>\n",
       "      <td>[-0.04984966391165102]</td>\n",
       "      <td>holiday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>[-0.07550638382877752]</td>\n",
       "      <td>[-0.0762834614114869]</td>\n",
       "      <td>weathersit</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>[-0.1244509110354415]</td>\n",
       "      <td>[-0.12189975918106244]</td>\n",
       "      <td>hum</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>[-0.17915558843833157]</td>\n",
       "      <td>[-0.1775283213461376]</td>\n",
       "      <td>windspeed</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   coef_lr              coef_ridge     columns\n",
       "5     [0.3607792568826817]   [0.35264591319341676]       atemp\n",
       "0     [0.1433939783801201]   [0.14522147049904177]        mnth\n",
       "3   [0.007117036082245347]  [0.007329217260655607]  workingday\n",
       "2  [0.0022800015941121087]  [0.002262967501316382]     weekday\n",
       "8   [-0.00917307374612307]  [-0.00930267277732355]       mnth2\n",
       "1  [-0.050600097803570804]  [-0.04984966391165102]     holiday\n",
       "4   [-0.07550638382877752]   [-0.0762834614114869]  weathersit\n",
       "6    [-0.1244509110354415]  [-0.12189975918106244]         hum\n",
       "7   [-0.17915558843833157]   [-0.1775283213461376]   windspeed"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#mse 归一化均方误差\n",
    "mse_mean = np.mean(ridge.cv_values_, axis = 0)\n",
    "plt.plot(np.log10(alphas), mse_mean.reshape(len(alphas),1)) \n",
    "\n",
    "#这是为了标出最佳参数的位置，不是必须\n",
    "#plt.plot(np.log10(ridge.alpha_)*np.ones(3), [0.28, 0.29, 0.30])\n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "\n",
    "print ('alpha is:', ridge.alpha_)\n",
    "\n",
    "# 看看各特征的权重系数，系数的绝对值大小可视为该特征的重要性\n",
    "fs = pd.DataFrame({\"columns\":list(columns), \"coef_lr\":list((lr.coef_.T)), \"coef_ridge\":list((ridge.coef_.T))})\n",
    "fs.sort_values(by=['coef_lr'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LassoCV on test is -1.4917308232375475\n",
      "The r2 score of LassoCV on train is 0.0\n",
      "alpha is: 0.1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/lyp/.local/lib/python3.6/site-packages/sklearn/linear_model/coordinate_descent.py:1094: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "#### Lasso／L1正则\n",
    "# class sklearn.linear_model.LassoCV(eps=0.001, n_alphas=100, alphas=None, fit_intercept=True, \n",
    "#                                    normalize=False, precompute=’auto’, max_iter=1000, \n",
    "#                                    tol=0.0001, copy_X=True, cv=None, verbose=False, n_jobs=1,\n",
    "#                                    positive=False, random_state=None, selection=’cyclic’)\n",
    "from sklearn.linear_model import LassoCV\n",
    "\n",
    "#设置超参数搜索范围\n",
    "alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "\n",
    "#生成一个LassoCV实例\n",
    "lasso = LassoCV(alphas=alphas)   \n",
    "\n",
    "#训练（内含CV）\n",
    "lasso.fit(X_train2, y_train)  \n",
    "\n",
    "#测试\n",
    "y_test_pred_lasso = lasso.predict(X_test2)\n",
    "y_train_pred_lasso = lasso.predict(X_train2)\n",
    "\n",
    "\n",
    "# 评估，使用r2_score评价模型在测试集和训练集上的性能\n",
    "print( 'The r2 score of LassoCV on test is', r2_score(y_test, y_test_pred_lasso))\n",
    "print( 'The r2 score of LassoCV on train is', r2_score(y_train, y_train_pred_lasso))\n",
    "\n",
    "print ('alpha is:', ridge.alpha_)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
